The present invention relates to methods and systems in the field of interactive computer program applications and more particularly to methods and systems for performing anticipated or predictable tasks which have not been requested by an interactive user.
An Interactive application can be defined as an application which provides the user with an environment that allows the user to interact with a computer system by using input devices (such as a keyboard and a mouse) to create objects (e.g. programs, documents, forms) and perform a variety of operations on these objects. An editor, for example, is usually an interactive application. The user interacts with the application to create, modify and save text. A spreadsheet is another example of an interactive application.
A typical interactive application usually operate in a simple cycle in which the application waits for a user input and then the application processes the user""s input.
During this process the system""s processor is typically idle for a substantial portion of the total elapsed time, waiting for the user input. The system xe2x80x9cgoes to workxe2x80x9d only when ordered by the user.
It is an object of the invention disclosed below to describe a method whereby the application program takes advantage of that idle time and xe2x80x9cgoes to workxe2x80x9d soon after the user shows down in his/her usage of the application, so that when the work is requested by the user, the application has already completed it is or is in the process of completing it, so the application""s overall response time is greatly improved.
The invention is a method and system for operating a computer system to execute a selected predicted operation which a user has not yet requested. The results of the predicted operation are stored with an uncommitted (temporary) status until the user actually requests the results of the predicted operation at which time the status of the results are changed to a committed (permanent) status so that the results become usable by the user as though generated after the user requests the predicted operation. User activity which invalidates or renders the results of the predicted operation useless is tracked, so that the results will be discarded when appropriate. Other user activity which does not invalidate the predicted operations may cause the execution of the predicted operation to be temporarily suspended until the triggering event occurs again. The selection of the predicted operation is made based on the particular activity being performed by the user at the time. A table of predicted operations may be used which prioritizes the predicted operations. The table may contain a list of allowable predicted operations based on a status code for each allowable predicted operation and a priority code for each allowable predicted operation. The triggering event for the predicted operation cycle may be the expiration of a time period since the last user activity or some other event which indicates that there are excess CPU resources available for predicted operations. The decision as to which operations should be allowed to execute predictively and what priorities should be assigned may be made by the application""s programmer or the user of the application.